home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / util / misc / ReportPlus.lha / reportplus / source / rp.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-06-28  |  11.3 KB  |  366 lines

  1. /* types */
  2.  
  3. #define AUTO            auto    /* automatic variables */
  4. #define AGLOBAL         ;       /* global (project-scope) */
  5. #define MODULE        static    /* external static (file-scope) */
  6. #define PERSIST        static    /* internal static (function-scope) */
  7. typedef signed char    ABOOL;    /* 8-bit signed quantity (replaces BOOL) */
  8. typedef signed char    SBYTE;    /* 8-bit signed quantity (replaces Amiga BYTE) */
  9. typedef signed short    SWORD;    /* 16-bit signed quantity (replaces Amiga WORD) */
  10. typedef signed long    SLONG;    /* 32-bit signed quantity (same as LONG) */
  11. #define elif        else if
  12.  
  13. #ifdef __STORM__
  14.     #define __inline
  15.     #define chip
  16.     #define EXIT_SUCCESS  0
  17.     #define EXIT_FAILURE 20
  18.     AGLOBAL ULONG stcl_d(STRPTR out, ULONG val);
  19.     AGLOBAL ULONG stcl_h(STRPTR out, ULONG val);
  20. #endif
  21. #ifdef LATTICE
  22.     #define CONST_STRPTR STRPTR
  23. #endif
  24.  
  25. // defined by AmigaOS are: IMPORT, UBYTE, UWORD, ULONG.
  26.  
  27. #define GID_12_LY1 0  // root layout
  28. #define GID_12_CH1 1  // chooser 1   (icon type)
  29. #define GID_12_CB1 2  // checkbox 1  (optimize?)
  30. #define GID_12_CB2 3  // checkbox 2  (planar?)
  31. #define GID_12_ST1 4  // string 1    (pathname(s))
  32. #define GID_12_ST2 5  // string 2    (status)
  33. #define GID_12_BU1 6  // button 1    (pathname(s) ASL)
  34. #define GID_12_BU2 7  // button 2    (menu)
  35. #define GID_12_BU3 8  // button 3    (process)
  36. #define GID_12_BU4 9  // button 4    (stop)
  37. #define GIDS_12    GID_12_BU4
  38.  
  39. #define BUG        0
  40. #define COM        1
  41. #define ENH        2
  42.  
  43. #define FONTX      8
  44. #define FONTY      8
  45.  
  46. #define TAB        9 /* tab */
  47. #define LF        10 /* linefeed */
  48. #define CR        13 /* carriage return */
  49. #define ESCAPE    27 /* escape */
  50. #define QUOTE     34 /* " (double quote) */
  51.  
  52. #define SCAN_UP     (0x4c)
  53. #define SCAN_DOWN   (0x4d)
  54. #define SCAN_ESCAPE (0x45)
  55. #define SCAN_HELP   (0x5f)
  56.  
  57. #define LIMIT_DIRS   4096
  58. #define LIMIT_FILES 16536
  59.  
  60. #define GREY              0
  61. #define BLACK             1
  62. #define WHITE             2
  63. #define RED               3
  64. #define BLUE              4
  65. #define LIGHTGREY         5
  66. #define ORANGE            6
  67. #define YELLOW            7
  68. #define LIGHTGREEN       14
  69.  
  70. #define MAXELEMENTS      14 // counting from 0
  71.  
  72. #define TITLEBARTEXT      "Report+ 4.7"
  73.  
  74. #define ABOUTXPIXEL     312
  75. #define ABOUTYPALPIXEL  128
  76. #define ABOUTYPUBPIXEL   98
  77.  
  78. #define FIRSTQUALIFIER 0x61
  79. #define LASTQUALIFIER  0x67
  80. #define KEYUP          0x80 /* key release */
  81.  
  82. #define MN_PROJECT        0
  83. #define MN_HELP           1
  84.  
  85. #define IN_NEW            0
  86. #define IN_OPEN           1
  87. #define IN_SAVE           3
  88. #define IN_SAVEAS         4
  89. #define IN_QUIT           6
  90.  
  91. #define IN_MANUAL         0
  92. #define IN_ABOUT          2
  93.  
  94. AGLOBAL void report1(void);
  95. AGLOBAL void report_loop(ULONG class, struct Gadget* addr, UWORD code, UWORD qual);
  96. AGLOBAL void report_exit(void);
  97. AGLOBAL void report_init(void);
  98. AGLOBAL void sender(void);
  99. AGLOBAL void config(void);
  100. AGLOBAL void newreport(ABOOL display);
  101. AGLOBAL void openreport(void);
  102. AGLOBAL void savereport(ABOOL saveas);
  103. AGLOBAL void loadreport(void);
  104.  
  105. AGLOBAL void aminet1(void);
  106. AGLOBAL void aminet_loop(ULONG class, struct Gadget* addr, UWORD code);
  107. AGLOBAL void aminet_exit(void);
  108. AGLOBAL void newaminet(ABOOL display);
  109. AGLOBAL void openaminet(void);
  110. AGLOBAL void saveaminet(ABOOL saveas);
  111. AGLOBAL void loadaminet(void);
  112.  
  113. AGLOBAL void acse1(void);
  114. AGLOBAL void acse2(void);
  115. AGLOBAL void acse3(void);
  116. AGLOBAL void acse_exit(void);
  117. AGLOBAL void decrypt(void);
  118. AGLOBAL void acse_loop(ULONG class, struct Gadget* addr, UWORD code);
  119.  
  120. AGLOBAL void autodoc_init(void);
  121. AGLOBAL void autodoc1(void);
  122. AGLOBAL void newautodoc(ABOOL display);
  123. AGLOBAL void openautodoc(void);
  124. AGLOBAL void saveautodoc(ABOOL saveas);
  125. AGLOBAL void autodoc_loop(ULONG class, struct Gadget* addr, UWORD code);
  126.  
  127. AGLOBAL void manuf1(void);
  128. AGLOBAL void runquery(ULONG querymanuf, ULONG queryproduct);
  129. AGLOBAL void updatemanuf(void);
  130. AGLOBAL void manuf_loop(ULONG class, struct Gadget* addr, UWORD code);
  131.  
  132. AGLOBAL void iff1(void);
  133. AGLOBAL void iff_loop(ULONG class, struct Gadget* addr, UWORD code, UWORD qual);
  134.  
  135. AGLOBAL void eol1(void);
  136. AGLOBAL void eol2(void);
  137. AGLOBAL void eolconvert(ABOOL gui);
  138. AGLOBAL void eol_loop(ULONG class, struct Gadget* addr, UWORD code, UWORD qual);
  139.  
  140. AGLOBAL void size_init(void);
  141. AGLOBAL void size1(void);
  142. AGLOBAL void updatesize(void);
  143. AGLOBAL void size_loop(ULONG class, struct Gadget* addr, UWORD code, UWORD qual);
  144. AGLOBAL void size_exit(void);
  145.  
  146. AGLOBAL void batt_init(void);
  147. AGLOBAL void batt1(void);
  148. AGLOBAL void batt_loop(ULONG class, struct Gadget* addr, UWORD code, UWORD qual, SWORD mousex, SWORD mousey);
  149. AGLOBAL void batt_open(void);
  150. AGLOBAL void batt_save(ABOOL saveas);
  151. AGLOBAL void writebatt(ABOOL verify);
  152.  
  153. AGLOBAL void files1(void);
  154. AGLOBAL void files_loop(ULONG class, struct Gadget* addr, UWORD code, UWORD qual);
  155. AGLOBAL void files_init(void);
  156. AGLOBAL void files_exit(void);
  157.  
  158. AGLOBAL void agdb1(void);
  159. AGLOBAL void agdb_loop(ULONG class, struct Gadget* addr, UWORD code);
  160. AGLOBAL void newagdb(ABOOL display);
  161. AGLOBAL void openagdb(void);
  162. AGLOBAL void saveagdb(ABOOL saveas);
  163. AGLOBAL void loadagdb(void);
  164.  
  165. AGLOBAL void icon1(void);
  166. AGLOBAL void icon2(void);
  167. AGLOBAL void iconconvert(ABOOL gui);
  168. AGLOBAL void icon_loop(ULONG gid);
  169. AGLOBAL void icon_do(void);
  170.  
  171. // rp.c
  172. AGLOBAL void outputasl(void);
  173. AGLOBAL void outputstring(void);
  174. AGLOBAL void fliplog(ABOOL keyboard);
  175. AGLOBAL void getdate(void);
  176. AGLOBAL void loop(void);
  177. AGLOBAL void navigate(void);
  178. AGLOBAL void rq(STRPTR text);
  179. AGLOBAL void cleanexit(SBYTE rc);
  180. AGLOBAL void closewindow(void);
  181. AGLOBAL void FreeNameNodes(struct List* ListPtr);
  182. AGLOBAL ABOOL asl(void);
  183. AGLOBAL void launcheditor(STRPTR pathname);
  184. AGLOBAL void readordie(STRPTR pathname);
  185. AGLOBAL void writeout(STRPTR pathname); // remember write() is reserved
  186. AGLOBAL ABOOL readin(STRPTR pathname);
  187. AGLOBAL void verynewwindow(SWORD width, SWORD height, STRPTR title, ULONG idcmp);
  188. AGLOBAL void newwindow(SWORD width, SWORD height, STRPTR title, ULONG idcmp);
  189. AGLOBAL void setgadget(WORD leftx, WORD topy, WORD width, WORD height, STRPTR text,
  190.     ULONG flags);
  191. AGLOBAL void append(STRPTR pathname);
  192. AGLOBAL ULONG checkbreak(void);
  193. AGLOBAL void clearlblist(void);
  194. AGLOBAL void boingball(void);
  195. AGLOBAL void unboingball(void);
  196. AGLOBAL ABOOL aboutloop(void);
  197. AGLOBAL VOID DrawGels(void);
  198. AGLOBAL void AddNameToTail(struct List* ListPtr, STRPTR name);
  199. AGLOBAL void double_init(void);
  200. AGLOBAL void drawgadgets(WORD gadgets);
  201. AGLOBAL void parse(STRPTR terminator);
  202. AGLOBAL void parsetoend(void);
  203. AGLOBAL ABOOL saveasl(STRPTR message);
  204. AGLOBAL void handlemenus(UWORD code);
  205. AGLOBAL void gadtools(void);
  206. AGLOBAL void lockscreen(void);
  207. AGLOBAL void unlockscreen(void);
  208. AGLOBAL void getfillcolour(void);
  209. AGLOBAL void multiasl(STRPTR pattern);
  210. AGLOBAL void convert(ABOOL gui);
  211. AGLOBAL void checkabort(ABOOL gui);
  212. AGLOBAL void reaction_loop(void);
  213.  
  214. // te.c
  215. AGLOBAL void textedit(void);
  216. // AGLOBAL void InitHook(struct Hook* hook, ULONG (*func)(), void* data);
  217.  
  218. #define REPORTHEIGHT    256 /* page 11 */
  219. #define REPORTWIDTH     640 /* page 11 */
  220. #define SENDERWIDTH     442 /* page 12 */
  221. #define SENDERHEIGHT    124 /* page 12 */
  222. #define CONFIGWIDTH     640 /* page 13 */
  223. #define CONFIGHEIGHT    198 /* page 13 */
  224.  
  225. #define AMINETWIDTH     640 /* page 21 */
  226. #define AMINETHEIGHT    256 /* page 21 */
  227.  
  228. #define ACSE1WIDTH      640 /* page 31 */
  229. #define ACSE1HEIGHT     192 /* page 31 */
  230. #define ACSE2WIDTH      600 /* page 32 */
  231. #define ACSE2HEIGHT     126 /* page 32 */
  232. #define ACSE3WIDTH      600 /* page 33 */
  233. #define ACSE3HEIGHT      94 /* page 33 */
  234.  
  235. #define AUTODOCWIDTH    640 /* page 41 */
  236. #define AUTODOCHEIGHT   256 /* page 41 */
  237.  
  238. #define MANUF1HEIGHT    114 /* page 51 */
  239. #define MANUF1WIDTH     640 /* page 51 */
  240.  
  241. #define IFF1WIDTH       640 /* page 61 */
  242. #define IFF1HEIGHT      256 /* page 61 */
  243.  
  244. #define EOL1WIDTH       540 /* page 71 */
  245. #define EOL1HEIGHT      186 /* page 71 */
  246.  
  247. #define SIZE1HEIGHT     224 /* page 81 */
  248. #define SIZE1WIDTH      640 /* page 81 */
  249.  
  250. #define BATT1HEIGHT     166 /* page 91 */
  251. #define BATT1WIDTH      640 /* page 91 */
  252.  
  253. #define FILES1WIDTH     528 /* page 101 */
  254. #define FILES1HEIGHT    256 /* page 101 */
  255.  
  256. #define AGDBWIDTH       508 /* page 111 */
  257. #define AGDBHEIGHT      256 /* page 111 */
  258.  
  259. #define MEDFIELD         32
  260. #define LONGFIELD        64
  261. #define VLONGFIELD      254
  262. #define LONGESTFIELD  16536
  263.  
  264. AGLOBAL struct SharedStruct
  265. {   ABOOL log;
  266.     UWORD function;
  267.     TEXT  editor[VLONGFIELD + 1],
  268.           output[VLONGFIELD + 1],
  269.           pathname[4096 + 1],       /* <= 4K total of pathnames */
  270.           finallist[4096 + 1],
  271.           thisfile[VLONGFIELD + 1], /* <= 254 characters per pathname */
  272.           thatfile[VLONGFIELD + 1];
  273. };
  274. AGLOBAL struct NameNode
  275. {   struct Node nn_Node;
  276.     UBYTE       nn_Data[96];
  277.     /* It must be long enough that you can hold a long pathname, longer than
  278.     will fit on the display, because it needs to be accurately compared
  279.     with the built-in list of system files. It needs to be at least as
  280.     long as the longest of those built-in files, plus 5 extra characters
  281.     for the .info extension. */
  282. };
  283. AGLOBAL struct ReportStruct
  284. {   ABOOL loaded;
  285.     ULONG floppies;
  286.     UWORD agnus, denise, cpu, model, type, severity, subsystem;
  287.     TEXT  chipram[5], fastram[5],
  288.                 hard[MEDFIELD + 1],
  289.                debug[LONGFIELD + 1],
  290.            developer[LONGFIELD + 1],
  291.            expansion[LONGFIELD + 1],
  292.              summary[LONGFIELD + 1],
  293.                   ks[6],
  294.                   wb[6],
  295.                   pv[LONGFIELD + 1],
  296.                   pp[LONGFIELD + 1],
  297.            thirdname[MEDFIELD + 1],
  298.             thirdver[MEDFIELD + 1],
  299.           thirdmanuf[MEDFIELD + 1],
  300.           lastname[MEDFIELD + 1],
  301.           firstname[MEDFIELD + 1],
  302.           company[MEDFIELD + 1],
  303.           phone[MEDFIELD + 1],
  304.           email[MEDFIELD + 1],
  305.           refer[VLONGFIELD + 1],
  306.           referid[VLONGFIELD + 1],
  307.           path[VLONGFIELD + 1],
  308.           config[VLONGFIELD + 1],
  309.           textfield[6][4096],
  310.           output[VLONGFIELD + 1];
  311. };
  312. AGLOBAL struct AminetStruct
  313. {   TEXT  amishort[41], // `short' is a reserved keyword, of course
  314.           uploader[41],
  315.           author[41],
  316.           requires[41],
  317.           version[41],
  318.           distribution[41],
  319.           type[11], // ____/_____\n
  320.           replaces[41],
  321.           output[VLONGFIELD + 1],
  322.           textfield[4096];
  323.     ULONG maintype,
  324.           subtype;
  325.     ABOOL loaded;
  326. };
  327. AGLOBAL struct AutodocStruct
  328. {   ULONG version;
  329.     ABOOL loaded;
  330.     TEXT  library[MEDFIELD + 1],        /* eg. workbench.library */
  331.           function[MEDFIELD + 1],
  332.           description[VLONGFIELD + 1],
  333.           output[VLONGFIELD + 1],
  334.           textfield[5][4096];
  335.     struct
  336.     {   TEXT  name[MEDFIELD + 1],
  337.               type[MEDFIELD + 1],
  338.               reg[MEDFIELD + 1],
  339.               desc[4096];
  340.     } var[9];
  341. };
  342. AGLOBAL struct IFFStruct
  343. {   ABOOL cd, rkm, obsolete, private, proposal, reserved, standard, unregistered;
  344.     TEXT  pathname[VLONGFIELD + 1];
  345. };
  346. AGLOBAL struct EOLStruct
  347. {   ABOOL detabulate;
  348.     UWORD source, dest;
  349.     ULONG tabsize;
  350. };
  351. AGLOBAL struct AGDBStruct
  352. {   TEXT  title[MEDFIELD + 1], // `short' is a reserved keyword, of course
  353.           publisher[MEDFIELD + 1],
  354.           players[MEDFIELD + 1],
  355.           hdinstallable[MEDFIELD + 1],
  356.           compatibility[MEDFIELD + 1],
  357.           gametype[MEDFIELD + 1],
  358.           output[VLONGFIELD + 1],
  359.           textfield[4096];
  360.     ABOOL loaded;
  361. };
  362. AGLOBAL struct IconStruct
  363. {   ULONG optimize, planar, // these must be ULONG not ABOOL nor BOOL!
  364.           type;             // this must be ULONG not UWORD!
  365. };
  366.